// #include <stdio.h>
// int main()
// {
// 	int max(int a,int b);
// 	int a,b,c;
// 	printf("input 2 numbers:\n");
// 	scanf("%d%d",&a,&b);
// 	c = max(a,b);
//     printf("the bigger is : %d\n",c);
// 	return 0;
// }
// int max(int a,int b)
// {
// 	if(a >= b)
// 		return c = a;
// 	else
// 		return c = b;
// }


// #include <stdio.h>
// #include <stdlib.h>
// #include <string.h>
// #define MAX 100//录入用户上限
// typedef struct
// {
// 	int number;//学号
// 	char name[ 50];//姓名
// 	int grade;//成绩
// }luru;
// luru student[MAX];
// int flag = 0;//当前系统录入用户人数
// void load_file(void)//写入文件
// {	
// 	FILE *rp=fopen("students.txt", "r");
// 	if(rp!=NULL)
// 	{
// 		fread(&flag,sizeof(int),1,rp);
// 		fread(student,sizeof(luru),flag,rp);
// 		fclose(rp);
// 	}
// }
// void save_file(void)//保存文件
// {
// 	FILE *fp = fopen( "students.txt","w");
// 	fwrite(&flag,sizeof(int),1,fp);
// 	fwrite(student,sizeof(luru),flag, fp);
// 	fclose(fp);
// }
// void add(void)//录入信息
// {
// 	if(flag>=MAX)
// 	{
// 		printf("录入用户上限，无法添加新用户\n");return;
// 	}
// 	luru xinxi;
// 	printf("请输入学生学号:");
// 	scanf("%d",&xinxi.number);
// 	printf("请输入学生姓名:");
// 	scanf("%s ",xinxi.name);
// 	getchar();
// 	printf("请输入学生成绩:\n");
// 	scanf("%d",&xinxi.grade);
// 	student[flag++]=xinxi;
// 	save_file();
// 	printf("信息录入成功\n");
// }
// void out(void)//查询打印
// {
// 	int num;
// 	char name1[50];
// 	printf("请输入学号:");scanf("%d",&num);
// 	printf("请输入姓名:");scanf("%s", name1);
// 	for(int i=0;i<flag;i++)
// 	{
// 		if(student[i].number==num && strcmp(student[i].name, name1)==0)
// 		{
// 			printf("学号:%d,姓名:%s成绩: %d\n " ,student[i].number ,student[i].name,student[i].grade);
// 			return;
// 		}

// 	}
// 	printf("未找到该学生信息,请确认是否已经录入\n");
// }
// int main(void)
// {
// 	load_file();
// 	while(1)
// 	{
// 		printf("1.录入信息\n");
// 		printf("2.查询成绩\n");
// 		printf("3.退出程序!\n");
// 		printf("请输入你的选择:");
// 		int choice;
// 		scanf("%d" ,&choice);
// 		switch(choice)
// 		{
// 			case 1:
// 				add();
// 				break;
// 			case 2:
// 				out();
// 				break;
// 			case 3:
// 				printf("期待下次使用再见!\n");
// 				return 0;
// 			default:
// 				printf("请输入有效选择1~3\n");
// 		}
// 	}
// }


#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#define n 100  
  
typedef struct {  
    char id[10];  
    char name[50];  
    float score;  
} Student;  
  
Student students[n];  
int student_count = 0;  
  
// 从文件读取学生数据  
void load_students() {  
    FILE *fp = fopen("students.txt", "r");  
    if (fp == NULL) {  
        printf("无法打开文件\n");  
        return;  
    }  
    student_count = 0;  
    while (fscanf(fp, "%s %s %f", students[student_count].id, students[student_count].name, &students[student_count].score) != EOF) {  
        student_count++;  
        if (student_count >= n) {  
            break;  
        }  
    }  
    fclose(fp);  
}  
  
// 将学生数据写入文件  
void save_students() {  
    FILE *fp = fopen("students.txt", "w");  
    if (fp == NULL) {  
        printf("无法打开文件\n");  
        return;  
    }  
    for (int i = 0; i < student_count; i++) {  
        fprintf(fp, "%s %s %.2f\n", students[i].id, students[i].name, students[i].score);  
    }  
    fclose(fp);  
}  
  
// 录入学生数据  
void add_student() {  
    if (student_count >= n) {  
        printf("学生数量已达上限\n");  
        return;  
    }  
      
    printf("请输入学号: ");  
    scanf("%s", students[student_count].id);  
    printf("请输入姓名: ");  
    scanf("%s", students[student_count].name);  
    printf("请输入成绩: ");  
    scanf("%f", &students[student_count].score);  
      
    student_count++;  
    save_students();  
    printf("学生数据已保存\n");  
}  
  
// 查询学生成绩  
void query_student() {  
    char id[10], name[50];  
    printf("请输入学号: ");  
    scanf("%s", id);  
    printf("请输入姓名: ");  
    scanf("%s", name);  
      
    for (int i = 0; i < student_count; i++) {  
        if (strcmp(students[i].id, id) == 0 && strcmp(students[i].name, name) == 0) {  
            printf("学号: %s, 姓名: %s, 成绩: %.2f\n", students[i].id, students[i].name, students[i].score);  
            return;  
        }  
    }  
    printf("未找到匹配的学生数据\n");  
}  
  
int main() {  
    int choice;  
    load_students();  
      
    while (1) {  
        printf("\n学生成绩查询系统\n");  
        printf("1. 录入数据\n");  
        printf("2. 查询成绩\n");  
        printf("3. 退出\n");  
        printf("请选择功能: ");  
        scanf("%d", &choice);  
          
        switch (choice) {  
            case 1:  
                add_student();  
                break;  
            case 2:  
                query_student();  
                break;  
            case 3:  
                save_students();  
                return 0;  
            default:  
                printf("无效的选择，请重新选择\n");  
        }  
    }  
}



